package com.jf.nep.render;

import org.lwjgl.util.vector.Matrix4f;

/**
 * <p>A mesh instance is an instance of a preinitialized @Mesh. There can be many instances of the same mesh but with different model matrices.</p>
 */
public interface MeshInstance {
    /** Identifier of a mesh that has been previously downloaded into the GPU. */
    String getMeshId();
    
    /** Identifier of a shader program */
    String getProgramId();
    
    /** The model matrix telling the renderer about where the mesh instance is to be placed in the world. */
    Matrix4f getModelMatrix();
    
    /** The normal matrix telling the renderer about the model rotation, used for normals */
    Matrix4f getRotationMatrix();
}
